package cn.maihe.elg.operation.centers.epoint.dto.handler;

import cn.maihe.elg.operation.centers.epoint.annotation.Decryption;
import cn.maihe.elg.operation.centers.epoint.dto.EpointBaseReqDTO;
import cn.maihe.elg.operation.common.annotation.DateFmt;
import cn.maihe.elg.operation.common.annotation.NumberFmt;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @Description 保函申请订单
 * @Author Alan
 * @Date 2025/02/11
 */
@Data
public class LYApplyGuaranteeReq extends EpointBaseReqDTO {

//    /**
//     * 是 平台编码（由广龙专区提供）
//     */
//    @NotBlank(message = "平台编码不能为空")
//    private String platformcode;
//    /**
//     * 是	业务流水号
//     */
//    @NotBlank(message = "业务流水号不能为空")
//    private String applyno;
//
//    /**
//     * 是 投保申请数据对象，敏感字段使用CA
//     */
//    private LYApplyData lyApplyData;
//
//    /**
//     * 是 投保申请数据，使用CA 加密
//     */
//    @NotBlank(message = "投保申请数据不能为空")
//    @Decryption
//    private String applydata;
//
//    /**
//     * 是 数字信封，使用投保用户CA 证书对投保申请
//     * 数据加密密钥进行加密
//     * */
//    @NotBlank(message = "数字信封不能为空")
//    private String digitalenvelope;

    /**
     * 是	业务流水号
     */
    @NotBlank(message = "业务流水号不能为空")
    private String applyno;
    /**
     * 是	投标企业名称
     */
    @NotBlank(message = "投标企业名称不能为空")
    private String biddername;
    /**
     * 是	统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空")
    private String biddercode;
    /**
     * 是	标段名称（密文）
     */
    @NotBlank(message = "标段名称不能为空")
    @Decryption
    private String biaoduanname;
    /**
     * 是	标段编号（密文）
     */
    @NotBlank(message = "标段编号不能为空")
    @Decryption
    private String biaoduanno;
    /**
     * 是	保证金金额（元）
     */
    @NotBlank(message = "保证金金额不能为空")
    @NumberFmt(scale = 2)
    private String bzjamount;
    /**
     * 是	招标人（密文）
     */
    @NotBlank(message = "招标人不能为空")
    @Decryption
    private String zbr;
    /**
     * 否	招标人统一社会信用代码（密文）
     */
    @Decryption
    private String zbrorgnum;
    /**
     * 否	项目审批文号（密文）
     */
    @Decryption
    private String approvalcode;
    /**
     * 否	投资项目统一代码（密文）
     */
    @Decryption
    private String projectcode;
    /**
     * 是	项目编号（密文）
     */
    @NotBlank(message = "项目编号不能为空")
    @Decryption
    private String projectno;
    /**
     * 是	项目名称（密文）
     */
    @NotBlank(message = "项目名称不能为空")
    @Decryption
    private String projectname;
    /**
     * 是	合同估算价（元）
     */
    @NotBlank(message = "合同估算价不能为空")
    @NumberFmt(scale = 2)
    private String reckonprice;
    /**
     * 是	招标人银行账号（密文）
     */
    @NotBlank(message = "招标人银行账号不能为空")
    @Decryption
    private String tendererbankcode;
    /**
     * 是	招标人银行开户行（密文）
     */
    @NotBlank(message = "招标人银行开户行不能为空")
    @Decryption
    private String tendereropenbank;
    /**
     * 是	招标人银行账户名称（密文）
     */
    @NotBlank(message = "招标人银行账户名称不能为空")
    @Decryption
    private String tendererbankaccount;
    /**
     * 是	招标人联系人（密文）
     */
    @NotBlank(message = "招标人联系人不能为空")
    @Decryption
    private String tenderercontact;
    /**
     * 是	招标人联系人联系方式（密文）
     */
    @NotBlank(message = "招标人联系人联系方式不能为空")
    @Decryption
    private String tenderercontacttel;
    /**
     * 是	项目所在地（行政区划代码）
     */
    @NotBlank(message = "项目所在地不能为空")
    private String citycode;
    /**
     * 是	招标项目类型
     */
    @NotBlank(message = "招标项目类型不能为空")
    private String projecttype;
    /**
     * 是	保证金截止时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    @NotBlank(message = "保证金截止时间不能为空")
    @Decryption
    @DateFmt
    private String bzjendtime;
    /**
     * 是	开标时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    @NotBlank(message = "开标时间不能为空")
    @Decryption
    @DateFmt
    private String kaibiaotime;
    /**
     * 是	投标有效期，单位天
     */
    @NotBlank(message = "投标有效期不能为空")
    @NumberFmt
    private String tbyxq;
    /**
     * 否	招标公告地址（密文）
     */
    @Decryption
    private String tendernoticeurl;
    /**
     * 是	招标文件下载地址（密文）
     */
    @NotBlank(message = "招标文件下载地址不能为空")
    @Decryption
    private String tenderfileurl;

    /**
     * 是 招标人地址（密文） 过渡期暂时部分项目可能没值
     */
//    @NotBlank(message = "招标人地址不能为空")
    @Decryption
    private String zbraddress;
    /**
     * 是招标公告/ 投标邀请书发布时间（ yyyy-MM-dd HH:mm:ss）（密文） 过渡期暂时部分项目可能没值
     */
//    @NotBlank(message = "招标公告发布时间不能为空")
    @Decryption
    private String zbfiledate;
}
